package com.igeek.array;

import java.util.Arrays;

/**
 * 数组练习
 */
public class Demo02 {

    public static void findMax(){
        int[] nums = {10,256,89,98,10,29,98};

        //1.假定第一个元素，就是最大值
        int max = nums[0];

        //2.遍历数组，后面的每个元组与其比较
        for(int i = 1;i<nums.length;i++){

            //3.如果后面的元素大于假定的最大值，则将其更改为最大值
            if(nums[i] > max){
                max = nums[i];
            }
        }

        System.out.println("找到了数组中的最大值："+max);
    }

    /**
     * 给一个有序的数组内部插入一个数，使得其有序性不发生变化
     * [10,34,56,89,120,498]
     * [10,34,56,70,89,120]
     * @param arr 一个有序的数组升序的
     * @param num 需要插入的数
     */
    public static void insertNum(int[] arr,int num){

        //1.遍历数组，每个元素都与要插入的数组进行比较
        for(int i = 0;i<arr.length;i++){

            if(arr[i] > num){

                //4.需要从后往前开始遍历
                for(int j = arr.length - 1;j>i;j--){

                    //5.前一个值赋值给后一个值
                    arr[j] = arr[j-1];
                }

                //更改当前元素的值，改为要插入的数
                arr[i] = num;
                break;
            }
        }
        System.out.println(Arrays.toString(arr));
    }

    public static void main(String[] args) {
//        findMax();
        int[] arr = {10,34,56,89,120,498};
        insertNum(arr,70);
    }
}
